package cn.maihe.elg.operation.supports.invoice.nuonuo.dto;

/**
 * @Description
 * @Author caixh
 * @Date 2021/4/30.
 */

import lombok.Data;

@Data
public class InvoiceDetail {

    /**
     * 商品名称（如invoiceLineProperty =1，
     *     则此商品行为折扣行，折扣行不允许多行
     *     折扣，折扣行必须紧邻被折扣行，商品名
     *     称必须与被折扣行一致）  90 必输
     */
    private String goodsName;

    /**
     * 商品编码（商品税收分类编码开发者自行
     *     填写）  19
     */
    private String goodsCode;

    /**
     * 自行编码（可不填）  20
     */
    private String selfCode;
    /**
     * 单价含税标志：0:不含税,1:含税  1 必输
     */
    private String withTaxFlag;
    /**
     *  单价，当单价(price)为空时，数量(num)也必须为空；
     *  (price)为空时，含税金额(taxIncludedAmount)、
     *  不含税金额(taxExcludedAmount)、税额(tax)都不能为空  16
     */
    private String price;

    /**
     * 数量（开具红票时数量为负数）  16
     */
    private String num;
    /**
     * 单位  20
     */
    private String unit;
    /**
     * 规格型号  40
     */
    private String specType;
    /**
     * 税额，[不含税金额] * [税率] = [税额]；税
     *     额允许误差为 0.06。红票为负。不含税金
     *     额、税额、含税金额任何一个不传时，会
     *     根据传入的单价，数量进行计算，可能和
     *     实际数值存在误差，建议都传入  16
     */
    private String tax;


    /**
     * 税率，注：纸票清单红票存在为null的情况  10 必输
     */
    private String taxRate;
    /**
     * 不含税金额。红票为负。不含税金额、税
     *     额、含税金额任何一个不传时，会根据传
     *     入的单价，数量进行计算，可能和实际数
     *     值存在误差，建议都传入  16
     */
    private String taxExcludedAmount;


    /**
     * 含税金额，[不含税金额] + [税额] = [含税
     *     金额]，红票为负。不含税金额、税额、含
     *     税金额任何一个不传时，会根据传入的单
     *     价，数量进行计算，可能和实际数值存在
     *     误差，建议都传入
     *     名称 类型 是否必须 示例值 最大长度 描述  16
     */
    private String taxIncludedAmount;


    /**
     * 发票行性质：0,正常行;1,折扣行;2,被折扣行  1
     */
    private String invoiceLineProperty;

    /**
     * 优惠政策标识：0,不使用;1,使用  1
     */
    private String favouredPolicyFlag;

    /**
     * 增值税特殊管理（优惠政策名称）,当favouredPolicyFlag为1时，此项必填  4500
     */
    private String favouredPolicyName;


    /**
     * 扣除额，差额征收时填写，目前只支持填
     *     写一项。 注意：当传0、空或字段不传时
     * ，都表示非差额征税；传0.00才表示差额
     *     征税：0.00  16
     */
    private String deduction;


    /**
     *  零税率标识：空,非零税率;1,免税;2,不征税;
     * 3,普通零税率；1、当税率为：0%，且增
     *     值税特殊管理：为“免税”， 零税率标识
     * ：需传“1” 2、当税率为：0%，且增值
     *     税特殊管理：为"不征税" 零税率标识：需
     *     传“2” 3、当税率为：0%，且增值税特
     *     殊管理：为空 零税率标识：需传“3”  1
     */
    private String zeroRateFlag;


}
